package licode.unisop.client.api.auth;

import licode.unisop.client.info.SopTokenInfo;
import licode.unisop.client.vo.SopAuthBrief;
import licode.unisop.client.vo.SopAuthUser;
import licode.unisop.client.vo.SopCredential;
import licode.unisop.client.vo.SopUserBrief;

import java.util.Map;

/**
 * 定义认证中心查询相关接口
 *
 * @author WR
 */
public interface SopUserAuthQuery {
    /**
     * 根据登录token获取登录的用户信息
     * @param tokenInfo 登录后返回的访问token
     * @return 登录的用户信息
     */
    SopAuthUser getAuthUserInfo(SopTokenInfo tokenInfo);

    SopUserBrief getUserInfo(SopTokenInfo req);

    /**
     * 判断登录token是否有效
     * @param tokenInfo 登录后返回的访问token
     * @return 如果指定token有效返回true；否则返回false
     */
    boolean tokenValid(SopTokenInfo tokenInfo);

    SopAuthBrief getAuthBrief(SopTokenInfo tokenInfo);

    SopCredential getCredential(SopTokenInfo authToken);

    Map<String, Object> getUserAssets(SopTokenInfo tokenInfo);
}
